﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using dao.commons;
using System.Data;
using System.Data.SqlClient;

namespace dao.daos
{
    public class ProveedorDao: BaseDao, IDao
    {
        public ProveedorDao(): base("PROVEEDOR", "ID_PROVEEDOR", true)
        {
        }

        public SqlDataReader obtenerDatosParaCombo()
        {
            string comando = "SELECT ID_PROVEEDOR, RAZON_SOCIAL FROM PROVEEDOR";

            SqlDataReader dr = traerDatosConsulta(comando);
            return dr;
        }


        public SqlDataReader ObtenerPorNombre(string razonSocial)
        {
            Conectar();
            SqlDataReader dr = null;
            try
            {
                Cmd.CommandText = "SELECT ID_PROVEEDOR, RAZON_SOCIAL, CUIT, ID_CIUDAD, DIRECCION, TELEFONO, FAX, SITIO_WEB, FECHA_ALTA, MONTO_MINIMO, DESCRIPCION, DADO_BAJA FROM PROVEEDOR WHERE RAZON_SOCIAL LIKE '%" + razonSocial + "%'";
                Cmd.Parameters.Add(new SqlParameter("@nombre", razonSocial));
                dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
                return dr;
            }
            catch (Exception)
            {
                return dr;
            }
        }

        //public SqlDataReader obtenerTodosColumnas(int? id = null)
        public SqlDataReader obtenerTodosColumnas(bool conBaja)
        {
            string comando = "SELECT p.ID_PROVEEDOR, p.RAZON_SOCIAL, p.CUIT, c.NOMBRE, p.DIRECCION, p.TELEFONO, p.FAX, p.SITIO_WEB, p.FECHA_ALTA, p.MONTO_MINIMO, p.DESCRIPCION, p.DADO_BAJA";
            comando += " FROM PROVEEDOR p INNER JOIN CIUDAD c ON (p.ID_CIUDAD=c.ID_CIUDAD) ";
            

            if (conBaja==false)
            {
                comando += " WHERE p.DADO_BAJA = 0 ";
            }

            //if (id != null)
            //{
            //    comando = " AND p.ID_PROVEEDOR" + id;
            //}

            SqlDataReader dr = traerDatosConsulta(comando);
            return dr;
        }
    }
}
